#include "widget.h"
#include "ui_widget.h"

#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 注意：在指针前面一定要加上类作用域说明符，说明该指针指向那个类的成员函数
    void (Widget::*pSignal)(QString) = &Widget::mySignal;  // 定义函数指针指向信号函数
    void (Widget::*pSlot)(QString) = &Widget::mySlot;  // 定义函数指针指向槽函数

    connect(this, pSignal, this, pSlot);  // 连接信号与槽

    emitSignal();  // 发射信号
}

Widget::~Widget()
{
    delete ui;
}

void Widget::emitSignal()
{
    emit mySignal("Hello");
}

void Widget::mySlot()
{
    qDebug() << "mySlot()被调用";
}

void Widget::mySlot(QString str)
{
    qDebug() << "mySlot(QString str)被调用" << str;
}

